﻿// 202 队列练习.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <deque>


using namespace std;


/*
http://oj.daimayuan.top/course/7/problem/56

你有一个数字 x，并且把 x放到队列里，你要执行如下操作 k次。

每次记队首的元素为 y
，首先把这个元素从队列中弹出，然后将 2y和 2y+1依次放到队列的末尾。

对于每次操作，输出队首的元素 y。

输入格式
第一行两个整数 x,k。

输出格式
共 k行，每行一个数字，表示每次操作队首的元素。

样例输入1
10 5
样例输出1
10
20
21
40
41
样例输入2
10 7
样例输出2
10
20
21
40
41
42
43
数据规模
对于 100%的数据，保证 1≤x≤104,1≤k≤105。
*/

deque<int> deq;
int x, k;

int main()
{
	cin >> x >> k;
	deq.push_back(x);
	for (int i = 0; i < k; i++) {
		x = deq.front(); deq.pop_front();
		cout << x<<" " << endl;
		deq.push_back(2 * x);
		deq.push_back(2 * x+1);
	}

	return 0;
}

 